package com.itheima.easy.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.itheima.easy.dto.BedDto;
import com.itheima.easy.entity.Bed;
import com.itheima.easy.mapper.BedMapper;
import com.itheima.easy.service.BedService;
import com.itheima.easy.vo.BedVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;

// 定义一个BedService类，实现管理床位的CRUD操作
@Service
public class BedServiceImpl implements BedService {

    @Resource
    BedMapper bedMapper;

    // 定义一个方法来添加新的床位
    @Override
    public void addBed(BedDto bed) {
        Bed bed1 = BeanUtil.toBean(bed, Bed.class);
        bed1.setBedStatus(0);
        bedMapper.addBed(bed1);
    }

    // 定义一个方法来更新现有的床位
    @Override
    public void updateBed(BedDto bed) {
        Bed bed1 = BeanUtil.toBean(bed, Bed.class);
        bed1.setBedStatus(0);
        bedMapper.updateBed(bed1);
    }

    // 定义一个方法来删除现有的床位
// 定义一个方法来通过ID删除床位
    @Override
    public void deleteBedById(Long id) {
        bedMapper.deleteBedById(id);
    }


    // 定义一个方法来通过ID检索床位
    @Override
    public BedVo getBedById(Long id) {
        return BeanUtil.toBean(bedMapper.getBedById(id), BedVo.class);
    }

    // 定义一个方法来检索所有床位
    @Override
    public List<BedVo> getAllBeds() {
        List<Bed> allBeds = bedMapper.getAllBeds();
        return allBeds.stream().map(v -> BeanUtil.toBean(v, BedVo.class)).collect(Collectors.toList());
    }

    // 定义一个方法来通过房间ID检索床位
    @Override
    public List<BedVo> getBedsByRoomId(Long roomId) {
        List<Bed> bedsByRoomId = bedMapper.getBedsByRoomId(roomId);
        return bedsByRoomId.stream().map(v -> BeanUtil.toBean(v, BedVo.class)).collect(Collectors.toList());
    }
}

